home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 February: Tool Chest / Dev.CD Feb 95 / Dev.CD Feb 95.toast / Tool Chest / Interfaces / Universal Interfaces 2.0a3 / Universal AIncludes / Slots.a < prev    next >
Encoding:
Text File  |  1994-11-11  |  10.6 KB  |  585 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        Slots.a
  3. ;
  4. ;    Copyright:    © 1984-1994 by Apple Computer, Inc.
  5. ;                All rights reserved.
  6. ;
  7. ;    Version:    Universal Interfaces 2.0a3  ETO #16, MPW prerelease.  Friday, November 11, 1994. 
  8. ;
  9. ;    Bugs?:        If you find a problem with this file, send the file and version
  10. ;                information (from above) and the problem description to:
  11. ;
  12. ;                    Internet:    apple.bugs@applelink.apple.com
  13. ;                    AppleLink:    APPLE.BUGS
  14. ;
  15. ;
  16.  
  17.     IF &TYPE('__SLOTS__') = 'UNDEFINED' THEN
  18. __SLOTS__ SET 1
  19.  
  20.  
  21.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  22.     include 'Types.a'
  23.     ENDIF
  24. ;        include 'ConditionalMacros.a'                                ;
  25.  
  26.     IF &TYPE('__EVENTS__') = 'UNDEFINED' THEN
  27.     include 'Events.a'
  28.     ENDIF
  29. ;        include 'Quickdraw.a'                                        ;
  30. ;            include 'MixedMode.a'                                    ;
  31. ;            include 'QuickdrawText.a'                                ;
  32. ;        include 'OSUtils.a'                                        ;
  33. ;            include 'Memory.a'                                        ;
  34.  
  35.     IF &TYPE('__FILES__') = 'UNDEFINED' THEN
  36.     include 'Files.a'
  37.     ENDIF
  38.  
  39. fCardIsChanged                    EQU        1                    ;Card is Changed field in StatusFlags field of sInfoArray
  40. fCkForSame                        EQU        0                    ;For SearchSRT. Flag to check for SAME sResource in the table. 
  41. fCkForNext                        EQU        1                    ;For SearchSRT. Flag to check for NEXT sResource in the table. 
  42. fWarmStart                        EQU        2                    ;If this bit is set then warm start else cold start.
  43. stateNil                        EQU        0                    ;State
  44. stateSDMInit                    EQU        1                    ;:Slot declaration manager Init
  45. statePRAMInit                    EQU        2                    ;:sPRAM record init
  46. statePInit                        EQU        3                    ;:Primary init
  47. stateSInit                        EQU        4                    ;:Secondary init
  48. ; flags for spParamData 
  49. fall                            EQU        0                    ; bit 0: set=search enabled/disabled sRsrc's 
  50. foneslot                        EQU        1                    ;    1: set=search sRsrc's in given slot only 
  51. fnext                            EQU        2                    ;    2: set=search for next sRsrc 
  52.  
  53. SlotIntQElement         RECORD    0
  54. sqLink                     ds.l    1                                    ;ptr to next element
  55. sqType                     ds.w    1                                    ;queue type ID for validity
  56. sqPrio                     ds.w    1                                    ;priority
  57. sqAddr                     ds.l    1                                    ;interrupt service routine
  58. sqParm                     ds.l    1                                    ;optional A1 parameter
  59. sizeof                     EQU    16
  60.                         ENDR
  61.  
  62. SpBlock                 RECORD    0
  63. spResult                 ds.l    1                                    ;FUNCTION Result
  64. spsPointer                 ds.l    1                                    ;structure pointer
  65. spSize                     ds.l    1                                    ;size of structure
  66. spOffsetData             ds.l    1                                    ;offset/data field used by sOffsetData
  67. spIOFileName             ds.l    1                                    ;ptr to IOFile name for sDisDrvrName
  68. spsExecPBlk                 ds.l    1                                    ;pointer to sExec parameter block.
  69. spParamData                 ds.l    1                                    ;misc parameter data (formerly spStackPtr).
  70. spMisc                     ds.l    1                                    ;misc field for SDM.
  71. spReserved                 ds.l    1                                    ;reserved for future expansion
  72. spIOReserved             ds.w    1                                    ;Reserved field of Slot Resource Table
  73. spRefNum                 ds.w    1                                    ;RefNum
  74. spCategory                 ds.w    1                                    ;sType: Category
  75. spCType                     ds.w    1                                    ;Type
  76. spDrvrSW                 ds.w    1                                    ;DrvrSW
  77. spDrvrHW                 ds.w    1                                    ;DrvrHW
  78. spTBMask                 ds.b    1                                    ;type bit mask bits 0..3 mask words 0..3
  79. spSlot                     ds.b    1                                    ;slot number
  80. spID                     ds.b    1                                    ;structure ID
  81. spExtDev                 ds.b    1                                    ;ID of the external device
  82. spHwDev                     ds.b    1                                    ;Id of the hardware device.
  83. spByteLanes                 ds.b    1                                    ;bytelanes from card ROM format block
  84. spFlags                     ds.b    1                                    ;standard flags
  85. spKey                     ds.b    1                                    ;Internal use only
  86. sizeof                     EQU    56
  87.                         ENDR
  88.  
  89. SInfoRecord             RECORD    0
  90. siDirPtr                 ds.l    1                                    ;Pointer to directory
  91. siInitStatusA             ds.w    1                                    ;initialization E
  92. siInitStatusV             ds.w    1                                    ;status returned by vendor init code
  93. siState                     ds.b    1                                    ;initialization state
  94. siCPUByteLanes             ds.b    1                                    ;0=[d0..d7] 1=[d8..d15]
  95. siTopOfROM                 ds.b    1                                    ;Top of ROM= $FssFFFFx: x is TopOfROM
  96. siStatusFlags             ds.b    1                                    ;bit 0 - card is changed
  97. siTOConst                 ds.w    1                                    ;Time Out C for BusErr
  98. siReserved                 ds.b    2                                    ;reserved
  99. siROMAddr                 ds.l    1                                    ; addr of top of ROM 
  100. siSlot                     ds.b    1                                    ; slot number 
  101. siPadding                 ds.b    3                                    ; reserved 
  102. sizeof                     EQU    24
  103.                         ENDR
  104.  
  105. SDMRecord                 RECORD    0
  106. sdBEVSave                 ds.l    1                                    ;Save old BusErr vector
  107. sdBusErrProc             ds.l    1                                    ;Go here to determine if it is a BusErr
  108. sdErrorEntry             ds.l    1                                    ;Go here if BusErrProc finds real BusErr
  109. sdReserved                 ds.l    1                                    ;Reserved
  110. sizeof                     EQU    16
  111.                         ENDR
  112.  
  113. FHeaderRec                 RECORD    0
  114. fhDirOffset                 ds.l    1                                    ;offset to directory
  115. fhLength                 ds.l    1                                    ;length of ROM
  116. fhCRC                     ds.l    1                                    ;CRC
  117. fhROMRev                 ds.b    1                                    ;revision of ROM
  118. fhFormat                 ds.b    1                                    ;format - 2
  119. fhTstPat                 ds.l    1                                    ;test pattern
  120. fhReserved                 ds.b    1                                    ;reserved
  121. fhByteLanes                 ds.b    1                                    ;ByteLanes
  122. sizeof                     EQU    20
  123.                         ENDR
  124.  
  125. SEBlock                 RECORD    0
  126. seSlot                     ds.b    1                                    ;Slot number.
  127. sesRsrcId                 ds.b    1                                    ;sResource Id.
  128. seStatus                 ds.w    1                                    ;Status of code executed by sExec.
  129. seFlags                     ds.b    1                                    ;Flags
  130. seFiller0                 ds.b    1                                    ;Filler, must be SignedByte to align on odd boundry
  131. seFiller1                 ds.b    1                                    ;Filler
  132. seFiller2                 ds.b    1                                    ;Filler
  133. seResult                 ds.l    1                                    ;Result of sLoad.
  134. seIOFileName             ds.l    1                                    ;Pointer to IOFile name.
  135. seDevice                 ds.b    1                                    ;Which device to read from.
  136. sePartition                 ds.b    1                                    ;The partition.
  137. seOSType                 ds.b    1                                    ;Type of OS.
  138. seReserved                 ds.b    1                                    ;Reserved field.
  139. seRefNum                 ds.b    1                                    ;RefNum of the driver.
  140. seNumDevices             ds.b    1                                    ; Number of devices to load.
  141. seBootState                 ds.b    1                                    ;State of StartBoot code.
  142. filler                     ds.b    1
  143. sizeof                     EQU    24
  144.                         ENDR
  145.  
  146. ;  Principle  
  147.     IF GENERATING68K THEN
  148.         Macro
  149.         _SReadByte
  150.             moveq    #0,d0
  151.             dc.w     $A06E
  152.         EndM
  153.     ELSE
  154.         IMPORT    SReadByte
  155.     ENDIF
  156.  
  157.     IF GENERATING68K THEN
  158.         Macro
  159.         _SReadWord
  160.             moveq    #1,d0
  161.             dc.w     $A06E
  162.         EndM
  163.     ELSE
  164.         IMPORT    SReadWord
  165.     ENDIF
  166.  
  167.     IF GENERATING68K THEN
  168.         Macro
  169.         _SReadLong
  170.             moveq    #2,d0
  171.             dc.w     $A06E
  172.         EndM
  173.     ELSE
  174.         IMPORT    SReadLong
  175.     ENDIF
  176.  
  177.     IF GENERATING68K THEN
  178.         Macro
  179.         _SGetCString
  180.             moveq    #3,d0
  181.             dc.w     $A06E
  182.         EndM
  183.     ELSE
  184.         IMPORT    SGetCString
  185.     ENDIF
  186.  
  187.     IF GENERATING68K THEN
  188.         Macro
  189.         _SGetBlock
  190.             moveq    #5,d0
  191.             dc.w     $A06E
  192.         EndM
  193.     ELSE
  194.         IMPORT    SGetBlock
  195.     ENDIF
  196.  
  197.     IF GENERATING68K THEN
  198.         Macro
  199.         _SFindStruct
  200.             moveq    #6,d0
  201.             dc.w     $A06E
  202.         EndM
  203.     ELSE
  204.         IMPORT    SFindStruct
  205.     ENDIF
  206.  
  207.     IF GENERATING68K THEN
  208.         Macro
  209.         _SReadStruct
  210.             moveq    #7,d0
  211.             dc.w     $A06E
  212.         EndM
  213.     ELSE
  214.         IMPORT    SReadStruct
  215.     ENDIF
  216.  
  217. ;  Special  
  218.     IF GENERATING68K THEN
  219.         Macro
  220.         _SReadInfo
  221.             moveq    #16,d0
  222.             dc.w     $A06E
  223.         EndM
  224.     ELSE
  225.         IMPORT    SReadInfo
  226.     ENDIF
  227.  
  228.     IF GENERATING68K THEN
  229.         Macro
  230.         _SReadPRAMRec
  231.             moveq    #17,d0
  232.             dc.w     $A06E
  233.         EndM
  234.     ELSE
  235.         IMPORT    SReadPRAMRec
  236.     ENDIF
  237.  
  238.     IF GENERATING68K THEN
  239.         Macro
  240.         _SPutPRAMRec
  241.             moveq    #18,d0
  242.             dc.w     $A06E
  243.         EndM
  244.     ELSE
  245.         IMPORT    SPutPRAMRec
  246.     ENDIF
  247.  
  248.     IF GENERATING68K THEN
  249.         Macro
  250.         _SReadFHeader
  251.             moveq    #19,d0
  252.             dc.w     $A06E
  253.         EndM
  254.     ELSE
  255.         IMPORT    SReadFHeader
  256.     ENDIF
  257.  
  258.     IF GENERATING68K THEN
  259.         Macro
  260.         _SNextSRsrc
  261.             moveq    #20,d0
  262.             dc.w     $A06E
  263.         EndM
  264.     ELSE
  265.         IMPORT    SNextSRsrc
  266.     ENDIF
  267.  
  268.     IF GENERATING68K THEN
  269.         Macro
  270.         _SNextTypeSRsrc
  271.             moveq    #21,d0
  272.             dc.w     $A06E
  273.         EndM
  274.     ELSE
  275.         IMPORT    SNextTypeSRsrc
  276.     ENDIF
  277.  
  278.     IF GENERATING68K THEN
  279.         Macro
  280.         _SRsrcInfo
  281.             moveq    #22,d0
  282.             dc.w     $A06E
  283.         EndM
  284.     ELSE
  285.         IMPORT    SRsrcInfo
  286.     ENDIF
  287.  
  288.     IF GENERATING68K THEN
  289.         Macro
  290.         _SCkCardStat
  291.             moveq    #24,d0
  292.             dc.w     $A06E
  293.         EndM
  294.     ELSE
  295.         IMPORT    SCkCardStat
  296.     ENDIF
  297.  
  298.     IF GENERATING68K THEN
  299.         Macro
  300.         _SReadDrvrName
  301.             moveq    #25,d0
  302.             dc.w     $A06E
  303.         EndM
  304.     ELSE
  305.         IMPORT    SReadDrvrName
  306.     ENDIF
  307.  
  308.     IF GENERATING68K THEN
  309.         Macro
  310.         _SFindDevBase
  311.             moveq    #27,d0
  312.             dc.w     $A06E
  313.         EndM
  314.     ELSE
  315.         IMPORT    SFindDevBase
  316.     ENDIF
  317.  
  318.     IF GENERATING68K THEN
  319.         Macro
  320.         _SFindBigDevBase
  321.             moveq    #28,d0
  322.             dc.w     $A06E
  323.         EndM
  324.     ELSE
  325.         IMPORT    SFindBigDevBase
  326.     ENDIF
  327.  
  328. ;  Advanced  
  329.     IF GENERATING68K THEN
  330.         Macro
  331.         _InitSDeclMgr
  332.             moveq    #32,d0
  333.             dc.w     $A06E
  334.         EndM
  335.     ELSE
  336.         IMPORT    InitSDeclMgr
  337.     ENDIF
  338.  
  339.     IF GENERATING68K THEN
  340.         Macro
  341.         _SPrimaryInit
  342.             moveq    #33,d0
  343.             dc.w     $A06E
  344.         EndM
  345.     ELSE
  346.         IMPORT    SPrimaryInit
  347.     ENDIF
  348.  
  349.     IF GENERATING68K THEN
  350.         Macro
  351.         _SCardChanged
  352.             moveq    #34,d0
  353.             dc.w     $A06E
  354.         EndM
  355.     ELSE
  356.         IMPORT    SCardChanged
  357.     ENDIF
  358.  
  359.     IF GENERATING68K THEN
  360.         Macro
  361.         _SExec
  362.             moveq    #35,d0
  363.             dc.w     $A06E
  364.         EndM
  365.     ELSE
  366.         IMPORT    SExec
  367.     ENDIF
  368.  
  369.     IF GENERATING68K THEN
  370.         Macro
  371.         _SOffsetData
  372.             moveq    #36,d0
  373.             dc.w     $A06E
  374.         EndM
  375.     ELSE
  376.         IMPORT    SOffsetData
  377.     ENDIF
  378.  
  379.     IF GENERATING68K THEN
  380.         Macro
  381.         _SInitPRAMRecs
  382.             moveq    #37,d0
  383.             dc.w     $A06E
  384.         EndM
  385.     ELSE
  386.         IMPORT    SInitPRAMRecs
  387.     ENDIF
  388.  
  389.     IF GENERATING68K THEN
  390.         Macro
  391.         _SReadPBSize
  392.             moveq    #38,d0
  393.             dc.w     $A06E
  394.         EndM
  395.     ELSE
  396.         IMPORT    SReadPBSize
  397.     ENDIF
  398.  
  399.     IF GENERATING68K THEN
  400.         Macro
  401.         _SCalcStep
  402.             moveq    #40,d0
  403.             dc.w     $A06E
  404.         EndM
  405.     ELSE
  406.         IMPORT    SCalcStep
  407.     ENDIF
  408.  
  409.     IF GENERATING68K THEN
  410.         Macro
  411.         _SInitSRsrcTable
  412.             moveq    #41,d0
  413.             dc.w     $A06E
  414.         EndM
  415.     ELSE
  416.         IMPORT    SInitSRsrcTable
  417.     ENDIF
  418.  
  419.     IF GENERATING68K THEN
  420.         Macro
  421.         _SSearchSRT
  422.             moveq    #42,d0
  423.             dc.w     $A06E
  424.         EndM
  425.     ELSE
  426.         IMPORT    SSearchSRT
  427.     ENDIF
  428.  
  429.     IF GENERATING68K THEN
  430.         Macro
  431.         _SUpdateSRT
  432.             moveq    #43,d0
  433.             dc.w     $A06E
  434.         EndM
  435.     ELSE
  436.         IMPORT    SUpdateSRT
  437.     ENDIF
  438.  
  439.     IF GENERATING68K THEN
  440.         Macro
  441.         _SCalcSPointer
  442.             moveq    #44,d0
  443.             dc.w     $A06E
  444.         EndM
  445.     ELSE
  446.         IMPORT    SCalcSPointer
  447.     ENDIF
  448.  
  449.     IF GENERATING68K THEN
  450.         Macro
  451.         _SGetDriver
  452.             moveq    #45,d0
  453.             dc.w     $A06E
  454.         EndM
  455.     ELSE
  456.         IMPORT    SGetDriver
  457.     ENDIF
  458.  
  459.     IF GENERATING68K THEN
  460.         Macro
  461.         _SPtrToSlot
  462.             moveq    #46,d0
  463.             dc.w     $A06E
  464.         EndM
  465.     ELSE
  466.         IMPORT    SPtrToSlot
  467.     ENDIF
  468.  
  469.     IF GENERATING68K THEN
  470.         Macro
  471.         _SFindSInfoRecPtr
  472.             moveq    #47,d0
  473.             dc.w     $A06E
  474.         EndM
  475.     ELSE
  476.         IMPORT    SFindSInfoRecPtr
  477.     ENDIF
  478.  
  479.     IF GENERATING68K THEN
  480.         Macro
  481.         _SFindSRsrcPtr
  482.             moveq    #48,d0
  483.             dc.w     $A06E
  484.         EndM
  485.     ELSE
  486.         IMPORT    SFindSRsrcPtr
  487.     ENDIF
  488.  
  489.     IF GENERATING68K THEN
  490.         Macro
  491.         _SDeleteSRTRec
  492.             moveq    #49,d0
  493.             dc.w     $A06E
  494.         EndM
  495.     ELSE
  496.         IMPORT    SDeleteSRTRec
  497.     ENDIF
  498.  
  499.     IF GENERATING68K THEN
  500.         _OpenSlotSync:    OPWORD    $A200
  501.     ELSE
  502.         IMPORT    OpenSlotSync
  503.     ENDIF
  504.  
  505.     IF GENERATING68K THEN
  506.         _OpenSlotAsync:    OPWORD    $A600
  507.     ELSE
  508.         IMPORT    OpenSlotAsync
  509.     ENDIF
  510.  
  511. ;  Device Manager Slot Support  
  512.     IF GENERATING68K THEN
  513.         _SIntInstall:    OPWORD    $A075
  514.     ELSE
  515.         IMPORT    SIntInstall
  516.     ENDIF
  517.  
  518.     IF GENERATING68K THEN
  519.         _SIntRemove:    OPWORD    $A076
  520.     ELSE
  521.         IMPORT    SIntRemove
  522.     ENDIF
  523.  
  524.     IF GENERATING68K THEN
  525.         Macro
  526.         _SVersion
  527.             moveq    #8,d0
  528.             dc.w     $A06E
  529.         EndM
  530.     ELSE
  531.         IMPORT    SVersion
  532.     ENDIF
  533.  
  534.     IF GENERATING68K THEN
  535.         Macro
  536.         _SetSRsrcState
  537.             moveq    #9,d0
  538.             dc.w     $A06E
  539.         EndM
  540.     ELSE
  541.         IMPORT    SetSRsrcState
  542.     ENDIF
  543.  
  544.     IF GENERATING68K THEN
  545.         Macro
  546.         _InsertSRTRec
  547.             moveq    #10,d0
  548.             dc.w     $A06E
  549.         EndM
  550.     ELSE
  551.         IMPORT    InsertSRTRec
  552.     ENDIF
  553.  
  554.     IF GENERATING68K THEN
  555.         Macro
  556.         _SGetSRsrc
  557.             moveq    #11,d0
  558.             dc.w     $A06E
  559.         EndM
  560.     ELSE
  561.         IMPORT    SGetSRsrc
  562.     ENDIF
  563.  
  564.     IF GENERATING68K THEN
  565.         Macro
  566.         _SGetTypeSRsrc
  567.             moveq    #12,d0
  568.             dc.w     $A06E
  569.         EndM
  570.     ELSE
  571.         IMPORT    SGetTypeSRsrc
  572.     ENDIF
  573.  
  574.     IF GENERATING68K THEN
  575.         Macro
  576.         _SGetSRsrcPtr
  577.             moveq    #29,d0
  578.             dc.w     $A06E
  579.         EndM
  580.     ELSE
  581.         IMPORT    SGetSRsrcPtr
  582.     ENDIF
  583.  
  584.     ENDIF ; __SLOTS__
  585.